home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_qt3.idb / usr / freeware / Qt / tutorial / t13 / lcdrange.cpp.z / lcdrange.cpp
C/C++ Source or Header  |  2002-04-08  |  2KB  |  89 lines

  1. /****************************************************************
  2. **
  3. ** Implementation of LCDRange class, Qt tutorial 12
  4. **
  5. ****************************************************************/
  6.  
  7. #include "lcdrange.h"
  8.  
  9. #include <qslider.h>
  10. #include <qlcdnumber.h>
  11. #include <qlabel.h>
  12. #include <qlayout.h>
  13.  
  14.  
  15. LCDRange::LCDRange( QWidget *parent, const char *name )
  16.         : QWidget( parent, name )
  17. {
  18.     init();
  19. }
  20.  
  21.  
  22. LCDRange::LCDRange( const char *s, QWidget *parent, const char *name )
  23.         : QWidget( parent, name )
  24. {
  25.     init();
  26.     setText( s );
  27. }
  28.  
  29.  
  30. void LCDRange::init()
  31. {
  32.     QLCDNumber *lcd  = new QLCDNumber( 2, this, "lcd"  );
  33.     slider = new QSlider( Horizontal, this, "slider" );
  34.     slider->setRange( 0, 99 );
  35.     slider->setValue( 0 );
  36.  
  37.     label = new QLabel( " ", this, "label"  );
  38.     label->setAlignment( AlignCenter );
  39.  
  40.     connect( slider, SIGNAL(valueChanged(int)),
  41.          lcd, SLOT(display(int)) );
  42.     connect( slider, SIGNAL(valueChanged(int)),
  43.          SIGNAL(valueChanged(int)) );
  44.  
  45.     setFocusProxy( slider );
  46.  
  47.     QVBoxLayout * l = new QVBoxLayout( this );
  48.     l->addWidget( lcd, 1 );
  49.     l->addWidget( slider );
  50.     l->addWidget( label );
  51. }
  52.  
  53.  
  54. int LCDRange::value() const
  55. {
  56.     return slider->value();
  57. }
  58.  
  59.  
  60. const char *LCDRange::text() const
  61. {
  62.     return label->text();
  63. }
  64.  
  65.  
  66. void LCDRange::setValue( int value )
  67. {
  68.     slider->setValue( value );
  69. }
  70.  
  71.  
  72. void LCDRange::setRange( int minVal, int maxVal )
  73. {
  74.     if ( minVal < 0 || maxVal > 99 || minVal > maxVal ) {
  75.     qWarning( "LCDRange::setRange(%d,%d)\n"
  76.           "\tRange must be 0..99\n"
  77.           "\tand minVal must not be greater than maxVal",
  78.           minVal, maxVal );
  79.     return;
  80.     }
  81.     slider->setRange( minVal, maxVal );
  82. }
  83.  
  84.  
  85. void LCDRange::setText( const char *s )
  86. {
  87.     label->setText( s );
  88. }
  89.